package com.xuecheng.content.service;

import com.xuecheng.content.model.dto.CoursePreviewDto;
import com.xuecheng.content.model.po.CoursePublish;

import java.io.File;

/**
 * @author cyf
 * @version 1.0
 * @description #课程发布服务接口
 * @date 2024/10/25 15:32
 */
public interface CoursePublishService {
    /**
     * @description 获取课程预览信息
     * @param courseId 课程id
     * @return com.xuecheng.content.model.dto.CoursePreviewDto
     * @author cyf
     * @date 2024/10/25 15:36
     */
    public CoursePreviewDto getCoursePreviewInfo(Long courseId);

    /**
     * 提交审核
     * @param companyId 机构id
     * @param courseId 课程id
     */
    public void commitAudit(Long companyId,Long courseId);

    /**
     * 发布课程
     * @param companyId 机构id
     * @param courseId 课程id
     */
    void publish(Long companyId,Long courseId);

    /**
     * 生成静态页面
     * @param courseId 课程id
     * @return html文件
     */
    File generateCourseHtml(Long courseId);

    /**
     * 上传静态页面到minio
     * @param courseId 课程id
     * @param file html页面
     */
    void  uploadCourseHtml(Long courseId,File file);

    /**
     * 查询课程发布信息
     * @param courseId 课程id
     * @return
     */
    CoursePublish getCoursePublish(Long courseId);

    /**
     * @description 查询缓存中的课程信息
     * @param courseId
     * @return com.xuecheng.content.model.po.CoursePublish
     */
    public CoursePublish getCoursePublishCache(Long courseId);
}
